﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace NPipeline
{
    /// <summary>
    /// This interface represents a data channel into which objects can be fed.
    /// Feeders act as intermediaries between stages in a pipeline and the drivers
    /// for subsequent stages. Each <see cref="IStageDriver"/> implementation will 
    /// ordinarily provide a custom Feeder implementation that integrates receiving
    /// objects with this internal stage processing workflow
    /// </summary>
    public interface IFeeder
    {
        /// <summary>
        /// Feeds the specified object to an underlying receiver
        /// </summary>
        /// <param name="obj">The object being fed to the receiver</param>
        void Feed(object obj);
    }
}
